---
id: 6564aee9c077774ea49c3faf
title: Крок 3
challengeType: 20
dashedName: step-3
---

# --description--

Алгоритм сортування злиттям в основному виконує три дії:

- розділяє невідсортовану множину елементів на частини
- відсортовує елементи в цих частинах
- об’єднує відсортовані частини

Вищевказане відбувається рекурсивно, доки частини не будуть об’єднані в повністю відсортовану множину. Почнемо з розділення множини.

Спочатку замініть ключове слово `pass` на змінну `middle_point`. Використайте оператор цілочисельного ділення (`//`), щоб поділити довжину списку `array` на 2 та призначте результат до нової змінної `middle_point`. Не забудьте зробити відступи в коді.

# --hints--

Тіло функції не повинне містити `pass`.

```js
({
  test: () => {
    const transformedCode = code.replace(/\r/g, "");
    const merge_sort = __helpers.python.getDef("\n" + transformedCode, "merge_sort");
    const { function_body } = merge_sort;

    assert.notMatch(function_body, /^\s{4}pass/m);
  }
})
```

Оголосіть змінну `middle_point` та призначте до неї `len(array) // 2`.

```js
({
  test: () => {
    const transformedCode = code.replace(/\r/g, "");
    const merge_sort = __helpers.python.getDef("\n" + transformedCode, "merge_sort");
    const { function_body } = merge_sort;

    assert.match(function_body, /^\s{4}middle_point\s*=\s*len\(\s*array\s*\)\s*\/\/\s*2/m);
  }
})
```

# --seed--

## --seed-contents--

```py
--fcc-editable-region--
def merge_sort(array):
    pass
--fcc-editable-region--
```
